package com.cskaoyan.object02.access.onepackage;

/*
     在java语言中，权限访问修饰符有四种：

    1.public：公共访问权限
     任意类均访问，实际就是没有限制访问权限

    2.protected：受保护的访问权限
    a. 在定义成员变量的类体中可以访问到
    b. 同包中的其他类类体中也可以访问
    c. 不同包的中，在有一部分类中，无法访问到具有protected权限的成员，还有一部分可以访问到(子类)？？？？？？？

    3.default(默认权限，隐式定义, 包访问权限)
    a. 定义成员变量的类体中可以访问
    b. 同包中的其他类可见
    c. 非同包的其他类不可见

    4.private（最小的访问权）
     仅对同类中的其他成员可见
    a. 在定义该成员的类体中可以访问
    b. 同包中的其他类访问不到
    c. 非同包的其他类中也访问不到

    成员方法和成员变量在访问权限上是相同的
 */
public class MemberAccess {
    // public 权限的成员变量
    public int publicField;

    // protected 权限的成员变量
    protected double protectedField;

    // 不加任何访问权限修饰符，默认具有默认访问权限
    boolean defaultField;

    // private访问权限
    private String privateField;



    public void testAccess() {
        // public
        System.out.println(this.publicField);

        //protected
        System.out.println(this.protectedField);

        //default
        System.out.println(this.defaultField);

        // private
        System.out.println(this.privateField);

        MemberAccess memberAccess = new MemberAccess();
        System.out.println(memberAccess.publicField);
        System.out.println(memberAccess.protectedField);
        System.out.println(memberAccess.defaultField);
        System.out.println(memberAccess.privateField);


    }


}
